Pods反复重启
container默认依赖cgroupfs来作为cgroup驱动。而k8s在1.22版本以上会默认使用systemd来驱动cgroup。
要确保container的默认cgroup驱动是systemd,需要修改containerd的配置文件:
containerd config default | tee /etc/containerd/config.toml sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml service containerd restart service kubelet restart
参考自:https://stackoverflow.com/questions/55571566/unable-to-bring-up-kubernetes-api-server
也可以通过修改kubelet的配置文件来实现,参考https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/。
Flannel报错
Failed to check br_netfilter: stat /proc/sys/net/bridge/bridge-nf-call- iptables: no such file or directory
系统缺少br_netfilter
内核导致。
解决步骤如下:
sudo modprobe br_netfilter echo 'br_netfilter' | sudo tee /etc/modules-load.d/br_netfilter.conf echo 'net.bridge.bridge-nf-call-iptables=1' | sudo tee /etc/sysctl.d/99-bridge-nf.conf echo 'net.bridge.bridge-nf-call-ip6tables=1' | sudo tee -a /etc/sysctl.d/99-bridge-nf.conf sudo sysctl --system
k8s会利用iptables实现一些高级功能,而网桥会绕过iptables规则,所以需要开启br_netfilter
内核,让流量经过iptables。